package com.ruoyi.fin.mapper;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import com.ruoyi.fin.domain.FinTransaction;

/**
 * 财务交易记录Mapper接口
 * 
 * @author ruoyi
 * @date 2025-06-19
 */
public interface FinTransactionMapper 
{
    /**
     * 查询财务交易记录
     * 
     * @param id 财务交易记录主键
     * @return 财务交易记录
     */
    public FinTransaction selectFinTransactionById(Long id);

    /**
     * 查询财务交易记录列表
     * 
     * @param finTransaction 财务交易记录
     * @return 财务交易记录集合
     */
    public List<FinTransaction> selectFinTransactionList(FinTransaction finTransaction);

    /**
     * 新增财务交易记录
     * 
     * @param finTransaction 财务交易记录
     * @return 结果
     */
    public int insertFinTransaction(FinTransaction finTransaction);

    /**
     * 修改财务交易记录
     * 
     * @param finTransaction 财务交易记录
     * @return 结果
     */
    public int updateFinTransaction(FinTransaction finTransaction);

    /**
     * 删除财务交易记录
     * 
     * @param id 财务交易记录主键
     * @return 结果
     */
    public int deleteFinTransactionById(Long id);

    /**
     * 批量删除财务交易记录
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteFinTransactionByIds(String[] ids);

    /**
     * 根据日期范围和交易类型查询总金额
     * 
     * @param params 查询参数（startDate:开始日期, endDate:结束日期, type:交易类型）
     * @return 总金额
     */
    public BigDecimal selectTotalAmountByDateRangeAndType(Map<String, Object> params);
}
